home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Collection of Tools & Utilities
/
Collection of Tools and Utilities.iso
/
tex
/
bss138.zip
/
HISTORY.TXT
< prev
next >
Wrap
Text File
|
1993-11-27
|
9KB
|
192 lines
Version history of BSS.EXE
1.00 1st release to public
1.01 Fixed bug in hilighting file name. If user entered "BSS /F *.*",
this caused a major problem. Made an additional binary check that
looked for lines longer 150 characters.
1.02 Fixed bug with /B switch. This was caused by adding the additional
binary check in previous version.
1.03 Added the number of records searched to the statistical info. Changed
the way I was calling a couple of subroutines & deleted 1 level.
call [call_find]
call [call_string]
This speeded it up a hair, which offset the speed reduction in
adding the # of records found.
1.04 Added FILE SIZE, DATE, TIME of file when used in conjunction with the
/F switch. Also added TOTAL BYTES searched, CPS (characters per sec.),
& BYTES FREE on current drive.
1.05 Fixed code to handle screen sizes larger than 25 rows X 80 columns.
Handled record counting different. Now using a lookup table for setting
hilighting & reverse attributes.
1.06 Fixed a bug in record counting that popped up occasionally. Was hard
to pin it down, because it was rather obscure. Disabled BYTES FREE on
current drive, because I found that it didn't work properly on a
Compaq (DOS v3.31 I think).
1.07 Fixed 3 bugs in conjunction with the screen pause function. Thanks
to Ray Tackett's observation.
1.08 The /A switch was not doing what I intended it to. Also changed my
logic on deciding whether it was a binary file or not. I am now
looking in the 1st 4k of the file for lines longer than 134 characters,
to determine this. Was finding it to fail with BBS listings w/some
graphics characters. Was originally looking in the 1st K of the file
for binary characters. Have found no difference in speed on my 386/33
between scanning 1k the old way & 4k the new way. Maybe able to take
advantage of the prelimary checking to speed up the search by holding
an array of the EOL character positions.
1.09 Started using MASM 6.0 & Spontaneous 3.0 library. Changed the way I
was storing the search strings. Am now using a linked list method.
4 byte overhead for each search string. This was changed in getting
ready to add a /R=file.nam switch (redirect input search strings).
Also added a /BF & /BN switch for only printing file names in a BBS
type listing found &/OR the names of the files it found them in.
1.10 Change to the Compact memory model. This allows me to keep the
extended information (/?) in a segment by itself, which in turn allows
me to define larger arrays in the near segment for search strings.
1.11 The /R=file.nam switch is now working. Increased the search string
buffer size to 24k. The maximum number of strings is 4096 (if they
were all 2 characters in each string), more typically 1755 if all the
strings were 5 characters each. Fixed minor bug with the /B switch.
If there were blank lines in the description such as compuserve
listings, it would stop at the 1st blank line.
1.12 Added /FS switch for outputting only the size of directories instead
of printing file names as well.
1.13 Added another error message. Put the /FS switch in the help display.
Fixed a nasty bug that has been in there awhile, but just never ran
across it until using the /R=ASCII.IN (this is a file containing all
ascii chars.). If you entered 2 search strings that were the same
(or mixed case but otherwise the same if you weren't using /E), it
would potentially lock up. Added a check for duplicates routine to
fix this. Added code to check for another program running BSS (like
the run command under windows)an added a pause at the end only if you
were using the /P switch.
1.14 Fixed a couple of output format problems. File & subdirectory sizes
were not right justified when output to a file. Changed the
call cput_chr
TO
call [call_outchr]
Also fixed it so the statistics went to the output file. Was closing
the output file before calling the statistics routine. Have mixed
emotions about putting it in the output file versus the screen (maybe
another switch for this?).
1.15 Turned off printing file names for the /F switch if the /T switch was
used.
1.16 Fixed a bug that would not print a match on the last line of an ASCII
file if it was not terminated w/a CR,LF. Added UNIX file type
compatibilty (they only use LF character instead of CR,LF)
1.17 Added /J switch. Print JUST strings that match, nothing else.
1.18 Fixed a divide by zero bug on calculating cps. This did not lock it
up or anything, only displayed an erroneous number, which turns out to
be 2 to the 64 power. This only occurred on a fast machine that said
it finished in 0 length of time. To fix this problem I just added
1 millisecond to the elapsed time.
===============================================================================
7,822 bytes 18,446,744,073,709,551,516 cps
Files: 1 Records: 275 Matches: 0 Elapsed Time: 00:00:00.00
1.19 Fixed an error in the calculating cps routine, that I created by
fixing the divide by zero. Speeded up the search routine by 3% for
non case-sensitive searches by using a 256 byte lookup table.
1.20 added .procs & .endp to all the functions I created, in order to run
it thru the profiler & get some descent information out of it.
min_search dw 0 ;minimum search string length
1.21 added a minimum search string length variable, but doesn't quite work
the way I want it to, yet.
1.22 took out the second of the following 2 lines:
add word ptr [sub_records],1
add word ptr [sub_records+2],0
Since my addition could never go beyond 8192, so it was pointless to
do so.
1.23 added some preliminary changes for re-using a wildcard routine for dos
file names as well as search strings. Upped the size of the
environmental string from 150 to 255. Added printing the statistical
info to the output file if /J switch was not used.
1.24 rewrote the find_end routine & the way it was being implimented in
hopes of speeding it up, but it was 20% slower instead. I'll put that
idea aside for now.
1.25 replaced the switch /L LEAVE screen alone (Do not use STATUS line)
with:
/L:*? wiLd search (the * & ? can be any 2 characters you wish to use)
this version still has some bugs in it though
1.26 got most of the bugs out of the wild search part, but while testing
this, found a bug in my hi-lighting routine, which I'll have to fix.
1.27 re-wrote one the hilighting routines & fixed all the bugs that I could
find so far with the wild search routine. 1st release to 14 beta
testers on the internet.
1.28 fixed 2 major bugs. One of which Fons en Willem found by doing
something I wasn't expecting. He pointed me right to address where
the error occured. Was not checking beyond the limit of the array.
The other bug happened only in conjunction with the /L switch, in it's
worst case it would get in an endless loop,but would also not hilight
text properly in some cases. Also fixed another minor bug that Fons
found. BSS /O=BSS.DOC /? paused before exiting. Not released
1.29 added line numbering feature "/#=n" where n equals the number of columns
to reserve for right justifying the line number (5 is the default)
& will leave one space between the number & line of text. Text wraps
to beginning of next line. Will change this soon to line up with
beginning of previous line. Not released
1.30 Changed the way the pause message displayed when using the /P switch.
I now temporarily move the status line to bottom of page for the pause
only, then switch it back to the top. David Morlitz pointed out that
it was not readily apparent that the program was paused. Also fixed
a bug when using "/P:15" or any other number did not work correctly.
1.31 Added "/C:#" & "/K" switch & fixed a few bugs
1.32 Added "/WP" & "/WR:#"
1.33 Added a few more error checks. Took out all the NOP's
1.34 Fixed a bug in the "/C" switch if a matching string was found before
it